package com.alks.function.service;

import com.alks.entity.data.entity.*;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.factoryquery.PartBfInRequest;
import com.alks.function.data.request.factoryquery.PartBfOutRequest;
import com.alks.function.data.request.factoryquery.PartStockRequest;
import com.alks.function.data.request.operate.material.MaterialDaI1Request;
import com.alks.function.data.request.order.*;
import com.alks.function.data.request.stock.PcOrderMaterialOrderDetailRequest;
import com.alks.function.data.request.yield.CollectionPointRequest;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;


public interface PcOrderHeadService extends IService<PcOrderHead> {

    ResponseInfo listOrder(PcOrderListRequest request);

    ResponseInfo pcAggScheduleList(PcAggScheduleRequest request);

    ResponseInfo getOrderCondition();

//    ResponseInfo downloadPcOrderExcel();

    ResponseInfo collectionPointList(CollectionPointRequest request) throws ExecutionException, InterruptedException;

    ResponseInfo getCollectionCondition();

    ResponseInfo pcAggScheduleCondition();

    ResponseInfo getPcOrderData(PcOrderDataRequest request);

    ResponseInfo getPcOrderShoePhotoFix(PcOrderShoePhotoFixRequest request);

    ResponseInfo updateShoePhoto(MultipartFile file, String style, String color);

    ResponseInfo updatePcOrderData(PcOrderDateUpdate request);

    ResponseInfo upDateShoeDetail(PcOrderShoePhotoFixRep request);

    ResponseInfo updatePcOrderDataSac(PcOrderDataSacRequest request);

    ResponseInfo getPcOrderDataRsjCondition();

    ResponseInfo getPcOrderDataRsj(PcOrderDataRsjRequest request,String choose);

    ResponseInfo getPcOrderDataTbs(PcOrderDataTbsRequest request);

    ResponseInfo outPcOrderDataTbs(PcOrderDataInOutRequest list);

    ResponseInfo PcOrderDataOutRecord(PcOrderDataTbsRequest request);

    ResponseInfo pcOrderDataDeleteRecord(PcOrderDataInOutRequest request);

    ResponseInfo pcOrderDataSummaryAlsCondition();

    ResponseInfo pcOrderDataSummaryAls(PcOrderSummaryAnalysisRequest request);

    ResponseInfo pcProductionDt(PcProductionDtRequest request);

    ResponseInfo updatePcProductionDtPlanDate(PcProdStatus request);

    ResponseInfo updatePcProdMarkOk(String lotNo);

    ResponseInfo pcProductionDtMarkGet();

    ResponseInfo updatePcProdCancelMarkOk(String lotNo);

    ResponseInfo pcOrderStyleColorDd(PcOrderShoePhotoFixRequest request);

    ResponseInfo pcOrderStyleColorDdCheck(PcOrderStyleColorDdCheckRequest request);

    ResponseInfo pcOrderStyleColorDdDetail(String lotNo);

    ResponseInfo updatePcOrderStyleColorDdDetail(PcOrderStyleColorDdDetailRep request);

    ResponseInfo getPickingOperate(PcOrderPickingOperateRequest request);

    ResponseInfo getPickingOperateDetail(String lotNo);

    ResponseInfo setTypeNameInPickingOperate(PcOrderCTN request);

    ResponseInfo setMtlNoInPickingOperate(PcOrderMtlNoPAndERequest request);

    ResponseInfo setMtlNoCopyInLotNo(PcOrderMtlNoPAndERequest request);

    ResponseInfo pcOrderShielding(PcOrderShieldingRequest request);

    ResponseInfo pcOrderShieldingList(String lotNo, Integer pageNum, Integer pageSize);

    ResponseInfo updatePickingOperate1(PcOrderPickingOperateDetailRep request);

    ResponseInfo pcOrderMaterialDaI1(MaterialDaI1Request request);

    ResponseInfo outStockMessageList(PcOrderSummaryAnalysisRequest request);

    ResponseInfo mtlPurList(PcOrderMaterialOrderDetailRequest request);

    ResponseInfo getPcSlipPart(PartBfInRequest request);

    ResponseInfo getOutPcSlipPart(PartBfOutRequest request);

    ResponseInfo getStockPcSlipPart(PartStockRequest request);

    ResponseInfo getStockOutAndIn(String mtlNo);

    void downloadPcProductDt(HttpServletResponse response, PcProductionDtRequest request) throws IOException;

    void downloadMtlPurList(HttpServletResponse response, PcOrderMaterialOrderDetailRequest request) throws IOException;

    void downloadInSlipPart(HttpServletResponse response, PartBfInRequest request) throws IOException;

    void downloadOutPart(HttpServletResponse response, PartBfOutRequest request) throws IOException;

    void downloadStockPart(HttpServletResponse response, PartStockRequest request) throws IOException;

    void downloadPcAggSchedule(HttpServletResponse response) throws IOException;

    ResponseInfo getProdUser(Integer choose);

    ResponseInfo uploadPcOrderHeadTemp(MultipartFile file);

    ResponseInfo uploadPcBatchOrder(MultipartFile file);

    ResponseInfo importMorePhotos(List<MultipartFile> list);

    void downloadOrderDataSummaryAls(PcOrderSummaryAnalysisRequest request,HttpServletResponse response) throws IOException;

    ResponseInfo updatePcOrderTable();

    ResponseInfo refreshOrderMaterialDaI2(List<String> lotNos);

    ResponseInfo setSampleTypeWithGeneration(PcOrderHead pcOrderHead);

    ResponseInfo deletePcOrderHead(List<String> orderIds);

    ResponseInfo getBomByStyleColor(PcStyleCraftRep rep);

    ResponseInfo getSampleType();


}
